package com.xiangxiao.rpan.storage.dao;

import com.xiangxiao.rpan.storage.entity.StorageSource;
import com.xiangxiao.rpan.storage.entity.StorageSourceConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 存储源拓展设置 Mapper 接口
 * @auther xiangxiao
 * @email 573768011@qq.com
 * @data 2023/10/25 11:21
 */
@Mapper
public interface StorageSourceConfigMapper {

  /**
   * 根据存储源 ID 查询存储源拓展配置, 并按照存储源 id 排序
   * @param   storageId
   *          存储源 ID
   * @return  存储源拓展配置列表
   */
  List<StorageSourceConfig> findByStorageIdOrderById(@Param("storageId") Integer storageId);

  /**
   * 根据存储源 ID 查询存储源拓展配置, 并按照存储源 id 排序
   * @param   storageKey
   *          存储源 ID
   * @return  存储源拓展配置列表
   */
  List<StorageSourceConfig> findByStorageKeyOrderById(@Param("storageKey") String storageKey);

  /**
   * 根据存储源 ID 删除存储源拓展配置
   * @param   storageId
   *          存储源 ID
   * @return  删除记录数
   */
  int deleteByStorageId(@Param("storageId") Integer storageId);

  /**
   * 插入新的存储参数
   * @param   storageSourceConfig
   *          存储对象参数
   * @return  保存后的id
   */
  Integer insertSingle(StorageSourceConfig storageSourceConfig);
}
